class Solution(object):
    def maximumProduct(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        nums.sort()
        return max(nums[0]*nums[1]*nums[-1], nums[-1]*nums[-2]*nums[-3])
if __name__ == '__main__':
    nums = [-6,-1,0,2,3]
    print(Solution().maximumProduct(nums))
# 思路：
# 先排序，然后取最大的三个数的乘积，或者最大的两个数和最小的两个数的乘积。
# 时间复杂度：O(nlogn)
# 空间复杂度：O(1)